from django import template
register = template.Library()

# 专门格式化 html类型的
from django.utils.html import format_html

from ..models import Types,Goods

# 名字:自定义分页标签
# 功能: 1.显示分页标签 
#           分页总数>10显示可变化10个标签 | 分页总数<10显示 zong 个标签
#      2.为每个标签添加 请求 当前页面数 搜索类别 搜索条件      
# 参数:总页数,request请求对象(装有: 当前页面数 搜索类别 搜索条件 )

@register.simple_tag
def showpage(zong,request):

    # 搜索模块
    # 获取页面传来的信息 转成dict形式
    a1 = request.GET.dict()
    # a1 = {'types':'搜索类别','keywords':'搜索条件','biao':当前页数}
    # 拼接一个  &types=搜索类别&keywords=搜索条件   
    # 目的:放在页面地址栏里  让其他页数也带有搜索条件
    s1 = ''
    for k,v in a1.items():
        if k != 'biao':
            s1 += "&{}={}".format(k,v)
 
    # 分页模块
    # 页面传来的信息 是str类型 转int型
    # 总页数   zong
    zong = int(zong)    
    # 当前分页地址  fen
    # 获取当前页数 分别存入 fen  fen_2
    fen = request.GET.get('biao',1)
    fen_2 = request.GET.get('biao',1)
    fen_2=int(fen_2)
    fen = int(fen)

    # s 待拼接字符串   拼接好后 format_html方法返回页面  将S内标签添加到页面
    s = ''
    # <li class="am-active"><a href="?biao='+str(i)+s1+'">'+str(i)+'</a></li>
    #             选中标识      请求名字?页码号= str(i)+搜索条件  页码号
    
    # 判断总页数是否小于10
    if zong < 10:  
        # 创建 向左移动 页签
        if fen_2 == 1:
            s +='<li class="am-disabled" ><a href="?biao='+str(fen_2)+s1+'">«</a></li>'
        else:
            s +='<li><a href="?biao='+str(fen_2-1)+s1+'">«</a></li>'           
        # 创建 1到zong 页签  
        for i in range(1,zong+1):
            # 为当前页数添加 选中标识
            if fen == i:
                s += '<li class="am-active"><a href="?biao='+str(i)+s1+'">'+str(i)+'</a></li>'
            else:
                s += '<li ><a href="?biao='+str(i)+s1+'">'+str(i)+'</a></li>'
        # 创建 向右移动 页签        
        if fen_2 == zong:
            s +='<li class="am-disabled" ><a href="?biao='+str(fen_2)+s1+'">»</a></li>'
        else:
            s +='<li><a href="?biao='+str(fen_2+1)+s1+'">»</a></li>'    

    else:
        # 判断当前分页数 
        #   是否小于6        当前fen页数值变成 6
        #   大于总页数-4     当前fen页数值变成 zong-4
        if fen < 6:
            fen = 6
        elif fen >zong-4:
            fen = zong-4
        # 开始页  
        kai = fen - 5
        # 结束页
        jie = fen + 4
        
        # 当前分页数 fen_2没有被修改 可以正常使用
        # 创建 向左移动 页签        
        if fen_2 == 1:
            s +='<li class="am-disabled" ><a href="?biao='+str(fen_2)+s1+'">«</a></li>'
        else:
            s +='<li><a href="?biao='+str(fen_2-1)+s1+'">«</a></li>'      
        # 创建 1到zong 页签
        for i in range(kai,jie+1):
            if fen_2 == i:
                s += '<li class="am-active"><a href="?biao='+str(i)+s1+'">'+str(i)+'</a></li>'
            else:
                s += '<li ><a href="?biao='+str(i)+'">'+str(i)+s1+'</a></li>'
        # 创建 向右移动 页签
        if fen_2 == zong:
            s +='<li class="am-disabled" ><a href="?biao='+str(fen_2)+s1+'">»</a></li>'
        else:
            s +='<li><a href="?biao='+str(fen_2+1)+s1+'">»</a></li>'         

    return format_html(s)

# 功能:让每个页面的导航 都是二级分类的名字

@register.simple_tag
def erji():

    # 查询所有的二级分类
    erlist = Types.objects.exclude(pid=0)

    s = ''

    for i in erlist:
        s += '<li class="layout-header-nav-item">'
        s += '<a href="/list/'+str(i.id)+'" class="layout-header-nav-link"> '+i.name+'</a>'              
        s += '</li>'                    
                
         
    return format_html(s)



   











